//封装请求 
import axios from "axios";
import { get_token } from "./auth";
import { Message } from 'element-ui'

const instance = axios.create({
    baseURL: 'http://localhost:47166/',
    timeout: 20000,//超时时间 请求经过了这个时间还没有响应就不再等待
    // headers: { 'Authorization': get_token() }
});

//拦截器 
//请求拦截器 请求发生前 要做的事情

// 添加请求拦截器
instance.interceptors.request.use(function (config) {
    config.headers.Authorization = get_token();
     console.log(config);
    // 在发送请求之前做些什么
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

//响应拦截器 响应返回后 要做的事情

instance.interceptors.response.use(function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    return response.data;
}, function (error) {
    console.log("统一处理异常", error);
    if (error.code === "ERR_NETWORK") {
        Message.error("网络错误");
        return;
    }
    if (error.status === 401) {
        // location.href = '/login';
        return;
    }

    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return;
});


export default instance